////////////////////////////////////////////////////////////////////////////////////
// Copyright 2010 SlickEdit Inc.
// You may modify, copy, and distribute the Slick-C Code (modified or unmodified)
// only if all of the following conditions are met:
//   (1) You do not include the Slick-C Code in any product or application
//       designed to run independently of SlickEdit software programs;
//   (2) You do not use the SlickEdit name, logos or other SlickEdit
//       trademarks to market Your application;
//   (3) You provide a copy of this license with the Slick-C Code; and
//   (4) You agree to indemnify, hold harmless and defend SlickEdit from and
//       against any loss, damage, claims or lawsuits, including attorney's fees,
//       that arise or result from the use or distribution of Your application.
////////////////////////////////////////////////////////////////////////////////////
#pragma option(pedantic,on)
#include "slick.sh"

enum CsSettingIndex {
   // Brace based language settings.
   CS_ST_NL_EMPTY = COMMON_OPTION_END,
   CS_SP_CATCH_PADPAREN,
   CS_SP_SWITCH_LPAREN,
   CS_SP_ARRAYEXPR_LBRACKET,
   CS_SP_ARRAYDECL_LBRACKET,
   CS_ST_FUNDECL_NAMELINE,
   CS_ST_ONELINE_DOWHILE,
   CS_SP_OP_BITWISE,
   CS_ST_ONELINE_CATCH,
   CS_SP_FOR_LPAREN,
   CS_SP_FUNCALL_VOIDPAREN,
   CS_SP_SWITCH_PADPAREN,
   CS_SP_FUN_PADPAREN,
   CS_SP_IF_RPAREN,
   CS_SP_OP_BITAND,
   CS_SP_OP_ASSIGNMENT,
   CS_SP_FOR_COMMA,
   CS_SP_FUNCALL_COMMA,
   CS_SP_ARRAYEXPR_RBRACKET,
   CS_SP_OP_MULT,
   CS_SP_ARRAYDECL_RBRACKET,
   CS_SP_FOR_LBRACE,
   CS_ST_ONELINE_THEN,
   CS_SP_CATCH_LPAREN,
   CS_SP_MEMBER_DOT,
   CS_SP_FOR_RPAREN,
   CS_SP_WHILE_RPAREN,
   CS_SP_RET_PAREXPR,
   CS_SP_THROW_PAREXPR,
   CS_ST_ONELINE_STATEMENT,
   CS_ST_ONELINE_ELSIF,
   CS_SP_OP_UNARY,
   CS_SP_OP_BINARY,
   CS_SP_OP_COMPARISON,
   CS_SP_CATCH_RPAREN,
   CS_SP_FUN_LPAREN,
   CS_SP_FUN_VOIDPAREN,
   CS_SP_WHILE_LBRACE,
   CS_SP_SWITCH_LBRACE,
   CS_SP_OP_LOGICAL,
   CS_SP_FOR_SEMICOLON,
   CS_ST_NL_FN,
   CS_SP_FUNCALL_RPAREN,
   CS_SP_FUNCALL_LPAREN,
   CS_SP_FUN_COMMA,
   CS_ST_LEAVE_DECLMULT,
   CS_SP_CATCH_LBRACE,
   CS_SP_FUN_LBRACE,
   CS_SP_IF_LBRACE,
   CS_SP_FOR_PADPAREN,
   CS_SP_SWITCH_RPAREN,
   CS_SP_OP_PREFIX,
   CS_SP_FUNCALL_PADPAREN,
   CS_SP_WHILE_PADPAREN,
   CS_SP_WHILE_LPAREN,
   CS_SP_FUN_RPAREN,
   CS_ST_LEAVE_STMTMULT,
   CS_SP_ARRAYEXPR_PADBRACKET,
   CS_SP_ARRAYDECL_PADBRACKET,
   CS_ST_ONELINE_ELSE,
   CS_ST_NL_CASE,
   CS_SP_OP_POSTFIX,
   CS_SP_IF_LPAREN,
   CS_SP_IF_PADPAREN,
   CS_INDENT_FIRST_LEVEL,
   CS_INDENT_GOTO,
   CS_ALIGN_ON_EQUALS,
   CS_EXP_PAREN_ALIGN,
   CS_BRACE_LOC_IF,
   CS_BRACE_LOC_FOR,
   CS_BRACE_LOC_WHILE,
   CS_BRACE_LOC_SWITCH,
   CS_BRACE_LOC_DO,
   CS_BRACE_LOC_TRY,
   CS_BRACE_LOC_CATCH,
   CS_BRACE_LOC_FUN,
   CS_COMMENT_INDENT,
   CS_COMMENT_COL1_INDENT,
   CS_ALLOW_ONELINE_BLOCK,
   CS_ST_NEWLINE_BEFORE_ELSE,
   CS_TRAILING_COMMENT_ALIGN,
   CS_TRAILING_COMMENT_VALUE,
   CS_INDENT_FROM_BRACE,
   CS_LABEL_INDENT,
   CS_SP_RETURN_PADPAREN,
   CS_SP_RETURN_RPAREN,
   CS_SP_THROW_PADPAREN,
   CS_SP_THROW_RPAREN,
   CS_SP_EXPR_LPAREN,
   CS_SP_EXPR_PADPAREN,
   CS_SP_EXPR_RPAREN,
   CS_SP_STMT_SEMICOLON,
   CS_SP_TRY_LBRACE,
   CS_BRACE_FOLLOWS_CASE,
   CS_NL_INDENT_LONE_ELSE,
   CS_RW_FORCE_THROW_PARENS,
   CS_RW_FORCE_RETURN_PARENS,
   CS_FORCE_PARAM_VOID,
   CS_SP_CAST_LPAREN,
   CS_SP_CAST_PADPAREN,
   CS_SP_CAST_RPAREN,
   CS_BLANK_BEFORE_CASE,
   CS_BLANK_BEFORE_FIRST_CASE,
   CS_BL_START_BLOCK_IF,
   CS_BL_END_BLOCK_IF,
   CS_BL_START_BLOCK_FOR,
   CS_BL_END_BLOCK_FOR,
   CS_BL_START_BLOCK_WHILE,
   CS_BL_END_BLOCK_WHILE,
   CS_BL_START_BLOCK_DO,
   CS_BL_END_BLOCK_DO,
   CS_BL_END_BLOCK_SWITCH,
   CS_BL_START_BLOCK_TRY,
   CS_BL_START_BLOCK_CATCH,
   CS_BL_END_BLOCK_CATCH,
   CS_BL_START_BLOCK_METHOD,
   CS_BL_BEFORE_LOCALS,
   CS_BL_AFTER_LOCALS,
   CS_VARALIGN_JUSTIFICATION,
   CS_BRACELOC_MULTILINE_COND,
   CS_SP_STMT_BEFORE_SEMI,

   CS_PP_INDENT, 
   CS_PP_INDENT_BLOCK,
   CS_PP_INDENT_HEADER_GUARD,
   CS_PP_OLD_STYLE_INDENT,
   CS_PP_CODE_INDENT,

   CS_ST_NL_CLASS,                
   CS_ALLOW_CLASS_ONE_LINE_BLOCK, 
   CS_SP_CLASS_LBRACE,            
   CS_SP_CLASS_COMMA,             
   CS_SP_CLASS_COLON,             
   CS_BRACE_LOC_CLASS,            
   CS_INDENT_CLASS_BODY,          
   CS_BL_BEFORE_FIRST_DECL,       
   CS_BL_BETWEEN_METHODS,         
   CS_BL_BETWEEN_FIELDS,          
   CS_BL_BETWEEN_COMMENTED_FIELDS,
   CS_BL_BETWEEN_MEMBER_CLASSES,  
   CS_BL_BETWEEN_DIFFERENT_DECLS, 
   CS_BL_BETWEEN_CLASSES,         
   CS_BL_BETWEEN_FN_PROTOTYPES,   
   CS_INSTVARALIGN_JUSTIFICATION,

   CS_SP_TMPLDECL_LT,
   CS_SP_TMPLDECL_PAD,
   CS_SP_TMPLDECL_COMMA,
   CS_SP_TMPLDECL_EQUALS,
   CS_SP_TMPLPARM_LT,
   CS_SP_TMPLPARM_PAD,
   CS_SP_TMPLPARM_COMMA,

   CS_JD_FORMAT_HTML,           
   CS_JD_FORMAT_PRE,            
   CS_JD_INDENT_PARAM_DESC,     
   CS_JD_INDENT_PAST_PARAM_NAME,
   CS_JD_FORCE_DELIM_NL,        
   CS_JD_BLANK_LINES_BEFORE_TAGS,
   CS_JD_RM_BLANK_LINES,        
   CS_JD_BETWEEN_DIFF_TAGS,     
   CS_JD_BETWEEN_SAME_TAGS,     
   CS_DOX_FORMAT_PRE,           
   CS_DOX_INDENT_PARAM_DESC,    
   CS_DOX_INDENT_PAST_PARAM_NAME,
   CS_DOX_FORCE_DELIM_NL,       
   CS_DOX_AFTER_BRIEF,          
   CS_DOX_RM_BLANK_LINES,       
   CS_DOX_BETWEEN_DIFF_TAGS,    
   CS_DOX_BETWEEN_SAME_TAGS,    
   CS_XDOC_FORMAT_PRE,          
   CS_XDOC_BETWEEN_DIFF_TAGS,   
   CS_XDOC_BETWEEN_SAME_TAGS,   
   CS_XDOC_RM_BLANK_LINES,      
   CS_XDOC_NL_AFTER_OPENTAG,
   CS_XDOC_NL_BEFORE_CLOSETAG,

   CS_NL_BEFORE_WHERE,
   CS_NL_AFTER_COMMA,
   CS_SP_WHERE_COMMA,
   CS_SP_WHERE_COLON,
   CS_BRACELOC_NAMESPACE,
   CS_BRACELOC_USING,
   CS_SP_USING_LPAREN,
   CS_SP_USING_PADPAREN,
   CS_SP_USING_RPAREN,
   CS_SP_USING_COMMA,
   CS_BRACELOC_PROPERTY,
   CS_BRACELOC_OUTER_PROPERTY,
   CS_SP_LOCK_LPAREN,
   CS_SP_LOCK_RPAREN,
   CS_SP_LOCK_PADPAREN,
   CS_BRACELOC_LOCK,
   CS_BL_START_BLOCK_LOCK,
   CS_BL_END_BLOCK_LOCK,
   CS_BL_START_BLOCK_USING,
   CS_BL_END_BLOCK_USING,
   CS_SP_FUN_COLON,
   CS_BRACELOC_ANONMETH,
   CS_BRACELOC_ENUM,

   END_OF_CS_SETTINGS,

   // Equivalences to the common settings
   CS_INDENT_SYNTAX = CBI_SYNTAX_INDENT,
   CS_INDENT_TAB = CBI_TAB_INDENT,
   CS_INDENT_POLICY = CBI_INDENT_POLICY,
   CS_INDENT_MEMBER_ACCESS = CBI_MEMBER_ACCESS_INDENT,
   CS_ACCESS_SPEC_INDENT = CBI_MEMBER_ACCESS_INDENT_WIDTH,
   CS_MEMBER_ACCESS_RELATIVE_INDENT = CBI_MEMBER_ACCESS_RELATIVE_INDENT,
   CS_INDENT_CASE = CBI_INDENT_CASE,
   CS_CASE_INDENT_WIDTH = CBI_CASE_INDENT_WIDTH,
   CS_CONTINUATION_WIDTH = CBI_CONTINUATION_WIDTH,
   CS_FUNCALL_PARAM_ALIGN = CBI_FUNCALL_PARAM_ALIGN,
   CS_ST_NL_FILE = CBI_NL_AT_END_OF_FILE,
   CS_ORIGINAL_TAB = CBI_ORIGINAL_TAB,
   CS_INDENT_USE_TAB = CBI_INDENT_USE_ORIGINAL_TAB,
   CS_RM_TRAILING_WS = CBI_RM_TRAILING_WS,
   CS_RM_DUP_WS = CBI_RM_DUP_WS
};
